/* 
 * cms，一个基于J2EE架构内容管理系统
 * Copyright © GrayRabbit Co., Ltd. All rights reserved.
 * Department:运营department
 * 更多信息请访问：
 * http://code.google.com/p/gray-rabbit-cms/
 */
package org.grayrabbit.cms.service.system;

import java.util.List;

import org.grayrabbit.cms.entity.AdminOperRela;
import org.grayrabbit.cms.vo.system.AdminOperRelaBean;

import org.grayrabbit.dao.util.Page;
import org.grayrabbit.service.GenericService;

/**
 * <b>AdminOperRela</b>的service接口

 * @version 1.0,创建时间: 2011-05-16 15:55:12 
 */
public interface AdminOperRelaService extends GenericService {
	/**
	 * 根据主键查询实体
	 * @param AdminOperRelaId
	 * @return
	 */
	AdminOperRela getAdminOperRela(String adminOperRelaId);
	/**
	 * 批量删除
	 * @param key
	 */
	void delete(String[] key);
	/**
	 * 删除实体
	 * @param AdminOperRela
	 */
	void delete(AdminOperRela adminOperRela);
	/**
	 * 保存实体
	 * @param AdminOperRela
	 */
	void save(List<AdminOperRela> relaList);
	/**
	 * 根据bean组装统计查询条件(名称参数)
	 * @param AdminOperRela
	 * @return
	 */
	Page<AdminOperRela> getPage(AdminOperRelaBean adminOperRelaBean);
	/**
	 * 填充分页组件的查询：(名称参数)
	 * @param page
	 * @param AdminOperRelaBean
	 */
	void list(Page<AdminOperRela> page, AdminOperRelaBean adminOperRelaBean);
	/**
	 * 批量保存实体
	 * @param AdminOperRela
	 */
	void save(AdminOperRela adminOperRela);
	
	/**
	 *  查找该管理员（adminId）的所有个人权限 
	 * @param adminId
	 * @return
	 */
	List<AdminOperRela> findAllAuthCodeByAdminId(String adminId);
	/**
	 *  存储 某admin 的所有权限 （先删除旧的 ，再添加新的）
	 */
	public void saveAllAuthCodeByAdminId(String adminId,String objectType ,String authJsonText);
	
	/**
	 * 权限删除   
	 * @param targetId   站点 、 栏目 、专题
	 * @param targetType  （targetId  类型）
	 */
	public void deleteObjectAuth(String[] targetId,String targetType);
	
	public void deleteAdminAuth(String adminId);
	void distributeAuditAuthCode(AdminOperRela adminOperRela, String auditNames);
	void addObjectDistributeAuthCode(AdminOperRela adminOperRela);
	String wrapAuthJsonText(String objectId);
 
}